﻿#pragma once

#include <DirectXMath.h>

namespace ifire::dx {

// 用于UI的实例化数据
struct UIInstancedData {
  DirectX::XMFLOAT2 offset;
  DirectX::XMFLOAT2 scale;
  DirectX::XMFLOAT2 uv_offset;
  DirectX::XMFLOAT2 uv_scale;
  float zindex; // 项目的ZIndex
  float pad1;   // 仅用于占位
  float pad2;   // 仅用于占位
  float pad3;   // 仅用于占位

  // 设置此项目为空，目前采取的方式是将其放置在剪裁空间外，让它被剪裁
  void SetEmpty() {
    // 这个值应该能将其移动到剪裁空间外
    offset = {10.0f, 10.0f};
    scale = {1.0f, 1.0f};
    uv_offset = {0.0f, 0.0f};
    uv_scale = {1.0f, 1.0f};
    zindex = 0.0f;
  }
};
} // namespace ifire::dx